package view;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;

import entity.Park;
import util.Constants;
import util.TableData;
import util.TableUtil;

public class IdleParkJPanel extends JPanel {
	private static final long serialVersionUID = 162458298261365699L;

	private JTable table;			
	private TableData tableData;
	
	public IdleParkJPanel(){
        setLayout(new BorderLayout());
        setBorder(BorderFactory.createTitledBorder("空闲车位"));
        initTopPanel();
        initTablePanel();
	}
	
	private void initTopPanel() {
		JPanel topPanel = new JPanel();
		topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.Y_AXIS));
		
		JPanel searchPnl = new JPanel();
		searchPnl.setLayout(new BoxLayout(searchPnl, BoxLayout.X_AXIS));
		
		JPanel inputPnl = new JPanel();
		inputPnl.setLayout(null);

		JLabel lab1 = new JLabel("类型",SwingConstants.RIGHT);
		lab1.setFont(Constants.font);
		lab1.setBounds(0, 0, 60, 30);

        JComboBox<String> lab1input = new JComboBox<>();
        lab1input.addItem("全部");
        lab1input.addItem("露天");
        lab1input.addItem("地下");
        lab1input.setBounds(65, 0, 120, 30);

        inputPnl.add(lab1);
        inputPnl.add(lab1input);
        
        
        JPanel btnBar = new JPanel();
		btnBar.setLayout(new BoxLayout(btnBar, BoxLayout.Y_AXIS));
		
		JButton queryBtn = new JButton("查询");
		queryBtn.setFont(Constants.font);
		queryBtn.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				String lab1inputStr = lab1input.getSelectedItem().toString();
				if(lab1input.getSelectedIndex() < 1){
					lab1inputStr = "";
				}
				String[] params = {lab1inputStr};
				refreshTable(params);
			}
		});

		JButton resetBtn = new JButton("重置");
		resetBtn.setFont(Constants.font);
		resetBtn.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				lab1input.setSelectedIndex(0);
			}
		});
		
		btnBar.add(queryBtn);
		btnBar.add(resetBtn);

		searchPnl.add(inputPnl);
		searchPnl.add(btnBar);
				
		topPanel.add(searchPnl);
		add(topPanel, BorderLayout.NORTH);
	}
	
	private void initTablePanel() {
		String columns[] = { "编号", "类型", "备注"};
		List<String[]> rows = new ArrayList<>();
		tableData = new TableData(columns, rows);
		table = new JTable(tableData);
		TableUtil.setTableStyle(table);
		JScrollPane jsPane = new JScrollPane(table);
		TableUtil.setJspStyle(jsPane);
		add(jsPane,BorderLayout.CENTER);
	}
	
	public void refreshTable(String[] params){
		Park park = new Park();
		List<String[]> rows = park.queryIdle(params);
		tableData.refresh(rows);
	}

}
